From 59e3eeb9ef559fa0db5efe69196aa78ee0c5bbea Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 8 Nov 2010 15:41:01 +0000 Subject: [PATCH] x86: Fix PV guest xsave support. Signed-off-by: Shan Haitao --- xen/arch/x86/domain.c | 2 +- xen/arch/x86/i387.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 7356efff3f..d50cbac751 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -395,7 +395,7 @@ int vcpu_initialise(struct vcpu *v) rc = 0; if ( is_pv_32on64_vcpu(v) ) rc = setup_compat_l4(v); - if ( !rc ) + if ( rc ) xfree(v->arch.xsave_area); return rc; diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c index 27b49234ed..1398b8fa5b 100644 --- a/xen/arch/x86/i387.c +++ b/xen/arch/x86/i387.c @@ -209,6 +209,7 @@ void xsave_init_save_area(void *save_area) memset(save_area, 0, xsave_cntxt_size); ((u32 *)save_area)[6] = 0x1f80; /* MXCSR */ + *(uint64_t *)(save_area + 512) = XSTATE_FP_SSE; /* XSETBV */ } /* -- 2.30.2